#ifndef _STDAFX_H_
#define _STDAFX_H_

#include <config.h>

#include <windows.h>
#include <commctrl.h>
#include <shellapi.h>
#include <tchar.h>
#include <stdio.h>
#include <helper/SAssertFmt.h>
#include <utilities-def.h>
#include <utilities.h>
#include <stdbool.h>

#include <core/SDefine.h>
#include <interface/sapp-i.h>
#include <interface/slog-i.h>
#include <interface/SFactory-i.h>
#include <interface/SRender-i.h>
#include <interface/SWindow-i.h>
#include <interface/SAdapter-i.h>
#include <interface/SCtrl-i.h>
#include <interface/SMessageBox-i.h>

#include <event/SEvents.h>

#define INITGUID
#include <guiddef.h>

typedef enum _ZipType{ ZIPFILE, PEDATA, MEMORYDATA } ZipType;
struct ZIPRES_PARAM
{
    ZipType type;
    IRenderFactory *pRenderFac;
    union {
        LPCTSTR pszZipFile;
        struct {
            HINSTANCE hInst;
            LPCTSTR pszResName;
            LPCTSTR pszResType;
        } peInfo;
        struct {
            LPBYTE  pByteBuffer;
            DWORD   dwByteCounts;				
        } Memory;
    };
    LPCSTR          pszPsw; //ZIP密码
    LPCTSTR			pszChildDir;
};

struct ZIP7RES_PARAM
{
    ZipType type;
    IRenderFactory *pRenderFac;
    union{
        LPCTSTR pszZipFile;
        
        struct{
            HINSTANCE hInst;
            LPCTSTR pszResName;
            LPCTSTR pszResType;
        }peInfo;
    };
    LPCSTR          pszPsw; 
    LPCTSTR			pszChildDir;
};

#endif // _STDAFX_H_